package com.times.demo.controller;

import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

/**
 * @ClassName PushController
 * @Description TODO
 * @Author zyy
 * @Date 2024/4/25 11:27
 * @Version 1.0
 **/
@Slf4j
@RestController
@RequestMapping("/push")
public class PushController {

    private static final String REG_ID = "v2-CQfgzHCZ6u4_tiek_EeUrmurRame2lDLLnZyGqN6RzBYwqT8geprEArK";
    private static final String URL = "https://api-push.vivo.com.cn";

    @GetMapping("sendSdk")
    public String sendSdk() throws Exception {
        int appId = 105636166;
        String token = "au1-DALlnn6Wqa9p6COksEIcVXoxsnR8ThMAorU5BaCx";
        String uri = URL + "/message/send";
        JSONObject params = new JSONObject();
        params.put("appId", appId);
        params.put("regId", REG_ID);
        params.put("notifyType", 4); // 通知类型 1:无，2:响铃，3:振动，4:响铃和振动
        params.put("title", "郭某看下有没有加1");
        params.put("classification", 1);
        params.put("category", "TODO");
        params.put("content", "郭某看下有没有加" + UUID.randomUUID());
        params.put("skipType", 1); // 点击跳转类型 1：打开APP首页 2：打开链接 3：自定义 4:打开app内指定页面
        params.put("skipContent", "vivopushscheme://com.timeweekly.informationize/push"); // 点击跳转类型 1：打开APP首页 2：打开链接 3：自定义 4:打开app内指定页面
        params.put("requestId", UUID.randomUUID()); // 用户请求唯一标识 最大64字符
        params.put("pushMode", 1); // 推送模式 0：正式推送；1：测试推送，不填默认为0（测试推送，只能给web界面录入的测试用户推送；审核中应用，只能用测试推送）
        params.put("foregroundShow", false); //是否前台通知展示，设置为false表示应用在前台则不展示通知消息，true表示无论应用是否在前台都展示通知。不填默认为true
        params.put("addBadge", true); // true:角标+1
        Map<String, Object> customMap = new HashMap<>();
        customMap.put("张三", "1234567890");
        customMap.put("李四", "自定义参数2");
        params.put("clientCustomMap", new JSONObject(customMap));
        String body = HttpRequest.post(uri).header("authToken", token).body(params.toString()).execute().body();
        log.info("推送成功：{}", body);
        return body;
    }

    @GetMapping("send")
    public String send() {
        String appId = "105636166";
        String[] regIds = {"v2-CQfgzHCZ6u4_tiek_EeUrmurRame2lDLLnZyGqN6RzBYwqT8geprEArK", "v2-CQfgkyOY7ORtsSj__EeUrmurRamehUOUOC4hx2d-gVB0ul4Y9LIZmDxN"};
        String body = null;
        String token = "au1-DALlnn6Wqa9p6COksEIcVXoxsnR8ThMAorU5BaCx";
        String uri = URL + "/message/send";
//        for (String regId : regIds) {
        JSONObject params = new JSONObject();
        params.put("appId", appId);
        params.put("regId", "v2-CQfgkyOY7ORtsSj__EeUrmurRamehUOUOC4hx2d-gVB0ul4Y9LIZmDxN");
        params.put("notifyType", 4); // 通知类型 1:无，2:响铃，3:振动，4:响铃和振动
        params.put("title", "郭某看下有没有加1");
        params.put("classification", 1);
        params.put("category", "TODO");
        params.put("content", "郭某看下有没有加" + UUID.randomUUID());
        params.put("skipType", 1); // 点击跳转类型 1：打开APP首页 2：打开链接 3：自定义 4:打开app内指定页面
        params.put("skipContent", "vivopushscheme://com.timeweekly.informationize/push"); // 点击跳转类型 1：打开APP首页 2：打开链接 3：自定义 4:打开app内指定页面
        params.put("requestId", UUID.randomUUID()); // 用户请求唯一标识 最大64字符
        params.put("pushMode", 1); // 推送模式 0：正式推送；1：测试推送，不填默认为0（测试推送，只能给web界面录入的测试用户推送；审核中应用，只能用测试推送）
        params.put("foregroundShow", false); //是否前台通知展示，设置为false表示应用在前台则不展示通知消息，true表示无论应用是否在前台都展示通知。不填默认为true
        params.put("addBadge", true); // true:角标+1
        Map<String, Object> customMap = new HashMap<>();
        customMap.put("张三", "1234567890");
        customMap.put("李四", "自定义参数2");
        params.put("clientCustomMap", new JSONObject(customMap));
        body = HttpRequest.post(uri).header("authToken", token).body(params.toString()).execute().body();
        log.info("推送成功：{}", body);
//        }
        return body;

    }
}